Optimizing Interpreters for Processors with Branch Target Buffers
نویسندگان
چکیده
Interpreters designed for efficiency execute a huge number of indirect branches and can spend more than half of the execution time in indirect branch mispredictions. Branch target buffers are the best widely available form of indirect branch prediction; they produce 50%–100% mispredictions for existing interpreters. In this paper we investigate three methods for improving the prediction accuracy of interpreters: replicating virtual machine (VM) instructions, combining sequences of VM instructions into superinstructions, and using separate dispatch branches for the two outcomes of conditional VM machine branches. In their extreme form these techniques eliminate all mispredictions except those caused by VM-level indirect branches. Applying these techniques in a more conservative way reduces the mispredictions to about 20%. We have measured speedups by factors of 1.75–3.16 on current processors from these techniques.
منابع مشابه
Optimizing Indirect Branch Prediction Accuracy in Virtual Machine Interpreters
The paper [EG03b] deals with two methods, which are used to reduce mispredictions of indirect branches in virtual machine interpreters. Interpreters designed for efficiency can spent a lot of their execution time recovering from misprediction of indirect branches. Branch target buffers is a common method of reducing mispredictions, however the accuracy of this method in existing interpreters is...
متن کاملBranch Prediction Architectures for 64-bit Address Space
Processor architectures will increasingly rely on issuing multiple instructions to make full use of available processor resources. When issuing multiple instructions on conventional processors, accurate branch prediction is critical to performance; mispredicted branches may mean that ten’s of cycles may be wasted. Architectures combining very effective branch prediction mechanisms coupled with ...
متن کاملBranch Prediction Architectures ; CU-CS-690-93
Processor architectures will increasingly rely on issuing multiple instructions to make full use of available processor resources. When issuing multiple instructions on conventional processors, accurate branch prediction is critical to performance; mispredicted branches may mean that ten’s of cycles may be wasted. Architectures combining very effective branch prediction mechanisms coupled with ...
متن کاملLimits of Indirect Branch Prediction
Indirect branch prediction is likely to become more important in the future because indirect branches tend to be more frequent in object-oriented programs. With indirect branch prediction misprediction rates of around 25% on current processors, such branches can incur a significant fraction of branch misses even though indirect branches are less frequent than the more predictable conditional br...
متن کاملFast & Accurate Instruction Fetch and Branch Prediction
Accurate branch prediction is critical to performance; mispredicted branches mean that ten’s of cycles may be wasted in superscalar architectures. Architectures combining very effective branch prediction mechanisms coupled with modified branch target buffers (BTB’s) have been proposed for wide-issue processors. These mechanisms require considerable processor resources. Concurrently, the larger ...
متن کامل